''' 
@文件：6.线程的同步原语.py
@作者：Miss丶念
@时间：2025/4/10：23:16
'''
import threading
import time

# 线程同步原语
event = threading.Event()

def work():
    print("等待事件触发")
    print('事件设置状态：',event.isSet())
    event.wait()  # 事件未触发，阻塞线程
    print("事件触发，开始工作")
    print('事件设置状态：', event.isSet())



t = threading.Thread(target=work)
t.start()
time.sleep(3)
print("触发事件")
event.set()


'''
线程同步原语：
    1、Event：事件，用于线程之间的通信。
        set()：设置事件触发
        clear()：清除事件
        wait()：等待事件
        is_set()：判断事件是否被设置
    2、Condition：条件变量，用于线程之间的通信。
    3、Semaphore：信号量，用于控制线程的并发数量
    4、Lock：锁，用于控制线程的并发数量
'''